import 'dart:async';

main() {
  // 流控制器
  StreamController controller = StreamController();
  // 监听流, 只实现默认方法
  // controller.stream.listen((data) => print(data));
  // 监听流, 全部实现
  controller.stream.listen((data) => print(data),
      onError: onError, onDone: onDone, cancelOnError: true);
  // 添加数据
  controller.sink.add(0);
  controller.sink.add('a, b, c, d');
  // 添加异常, 可选
  controller.sink.addError(-1);
  controller.sink.add(3.14);
  // 关闭流
  controller.close();
}

/// 异常
void onError(error) {
  print('onError: $error');
}

/// 完成
void onDone() {
  print('onDone');
}